//axiosInstance.js
//导入axios
import axios from 'axios'

//使用axios下面的create([config])方法创建axios实例，其中config参数为axios最基本的配置信息。
const Api = axios.create({
	baseURL: 'http://10.77.50.193:50005/', //请求后端数据的基本地址，自定义
	// timeout: 2000,
	// withCredentials: true, // 异步请求携带cookie
	headers: {
		// 设置后端需要的传参类型
		'Content-Type': 'application/json',
		'token': 'your token',
		'X-Requested-With': 'XMLHttpRequest',
	},
})

// 错误处理函数
function errorHandle(response) {
	switch (response.status) {
		case 400:
			console.log(400);
			// 处理错误信息，例如抛出错误信息提示，或者跳转页面等处理方式。
			// return Promise.resolve(error)
			break;
		case 401:
			console.log(401);
			break;
		case 404:
			console.log(404);
			break;
		// ...
		default:
			console.log(response);
			throw new Error("未知错误");
	}
}
// 成功处理函数

function successHandle(response) {
	switch (response.status) {
		case 200:
			// console.log(200);
			return response.data;
		// ....
		default:
			console.log(response.status);
			return;
	}
}
// 请求拦截器
Api.interceptors.request.use(
	(config) => {
		return config;
	},
	(error) => {
		// 错误抛到业务代码
		error.data = {};
		error.data.msg = "服务器异常";
		return Promise.resolve(error);
	}
);

Api.interceptors.response.use(
	(response) => {
		return successHandle(response);
	},
	(err) => {
		errorHandle(err.response);
	}
);


//导出我们建立的axios实例模块，ES6 export用法
export default Api
